home *** CD-ROM | disk | FTP | other *** search
-
-
-
- STAT C Library Procedures STAT
-
-
-
- NNAAMMEE
- stat, lstat, fstat - get file status
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
- ##iinncclluuddee <<ssyyss//ssttaatt..hh>>
-
- ssttaatt((ppaatthh,, bbuuff))
- cchhaarr **ppaatthh;;
- ssttrruucctt ssttaatt **bbuuff;;
-
- llssttaatt((ppaatthh,, bbuuff))
- cchhaarr **ppaatthh;;
- ssttrruucctt ssttaatt **bbuuff;;
-
- ffssttaatt((ffdd,, bbuuff))
- iinntt ffdd;;
- ssttrruucctt ssttaatt **bbuuff;;
-
- DDEESSCCRRIIPPTTIIOONN
- _S_t_a_t obtains information about the file _p_a_t_h. Read, write
- or execute permission of the named file is not required, but
- all directories listed in the path name leading to the file
- must be reachable.
-
- _L_s_t_a_t is like _s_t_a_t except in the case where the named file
- is a symbolic link, in which case _l_s_t_a_t returns information
- about the link, while _s_t_a_t returns information about the
- file the link references.
-
- _F_s_t_a_t obtains the same information about an open file refer-
- enced by the argument descriptor, such as would be obtained
- by an _o_p_e_n call.
-
- _B_u_f is a pointer to a _s_t_a_t structure into which information
- is placed concerning the file. The contents of the struc-
- ture pointed to by _b_u_f
-
- struct stat {
- dev_t st_dev; /* device inode resides on */
- ino_t st_ino; /* this inode's number */
- u_short st_mode;/* protection */
- short st_nlink; /* number or hard links to the file */
- uid_t st_uid; /* user-id of owner */
- gid_t st_gid; /* group-id of owner */
- dev_t st_rdev; /* the device type, for inode that is device */
- off_t st_size; /* total size of file */
- time_t st_atime; /* file last access time */
- int st_spare1;
- time_t st_mtime; /* file last modify time */
- int st_spare2;
- time_t st_ctime; /* file last status change time */
-
-
-
- Sprite v1.0 October 25, 1987 1
-
-
-
-
-
-
- STAT C Library Procedures STAT
-
-
-
- int st_spare3;
- long st_blksize; /* optimal blocksize for file system i/o ops */
- long st_blocks; /* actual number of blocks allocated */
- long st_serverID; /* Sprite ID of server holding inode */
- long st_version; /* Version number for file */
- long st_userType; /* User-settable attribute word */
- long st_devServerID;/* For devices, Sprite ID of device's machine */
- };
-
- st_atime Time when file data was last accessed. Changed
- by the following system calls: _m_k_n_o_d(2),
- _u_t_i_m_e_s(2), and _r_e_a_d(2). For directories, the
- access time is changed each time a file name
- lookup passes through the directory.
-
- st_mtime Time when data was last modified. It is not set
- by changes of owner, group, link count, or mode.
- Changed by the following system calls: _m_k_n_o_d(2),
- _u_t_i_m_e_s(2), _w_r_i_t_e(2).
-
- st_ctime Time when file status was last changed. It is
- set both both by writing and changing the i-
- node. Changed by the following system calls:
- _c_h_m_o_d(2) _c_h_o_w_n(2), _l_i_n_k(2), _m_k_n_o_d(2), _r_e_n_a_m_e(2),
- _u_n_l_i_n_k(2), _u_t_i_m_e_s(2), _w_r_i_t_e(2).
-
- st_version Version number for the file. It is incremented
- each time the file is opened for writing.
-
- The status information word _s_t__m_o_d_e has bits:
- #define S_IFMT 0170000 /* type of file */
- #define S_IFDIR 0040000/* directory */
- #define S_IFCHR 0020000/* character special */
- #define S_IFBLK 0060000/* block special */
- #define S_IFREG 0100000/* regular */
- #define S_IFLNK 0120000/* symbolic link */
- #define S_IFSOCK 0140000/* socket */
- #define S_IFPDEV 0150000/* pseudo-device */
- #define S_IFRLNK 0160000/* remote link */
- #define S_ISUID 0004000 /* set user id on execution */
- #define S_ISGID 0002000 /* set group id on execution */
- #define S_IREAD 0000400 /* read permission, owner */
- #define S_IWRITE 0000200/* write permission, owner */
- #define S_IEXEC 0000100 /* execute/search permission, owner */
-
- The mode bits 0000070 and 0000007 encode group and others
- permissions (see _c_h_m_o_d(2)).
-
- RREETTUURRNN VVAALLUUEE
- Upon successful completion a value of 0 is returned. Other-
- wise, a value of -1 is returned and _e_r_r_n_o is set to indicate
- the error.
-
-
-
- Sprite v1.0 October 25, 1987 2
-
-
-
-
-
-
- STAT C Library Procedures STAT
-
-
-
- EERRRROORRSS
- _S_t_a_t and _l_s_t_a_t will fail if one or more of the following are
- true:
-
- [ENOTDIR] A component of the path prefix is not a
- directory.
-
- [EINVAL] The pathname contains a character with the
- high-order bit set.
-
- [ENAMETOOLONG] A component of a pathname exceeded 255 char-
- acters, or an entire path name exceeded 1023
- characters.
-
- [ENOENT] The named file does not exist.
-
- [EACCES] Search permission is denied for a component
- of the path prefix.
-
- [ELOOP] Too many symbolic links were encountered in
- translating the pathname.
-
- [EFAULT] _B_u_f or _n_a_m_e points to an invalid address.
-
- [EIO] An I/O error occurred while reading from or
- writing to the file system.
-
- _F_s_t_a_t will fail if one or both of the following are true:
-
- [EBADF] _F_i_l_d_e_s is not a valid open file descriptor.
-
- [EFAULT] _B_u_f points to an invalid address.
-
- [EIO] An I/O error occurred while reading from or
- writing to the file system.
-
- CCAAVVEEAATT
- The fields in the stat structure currently marked _s_t__s_p_a_r_e_1,
- _s_t__s_p_a_r_e_2, and _s_t__s_p_a_r_e_3 are present in preparation for
- inode time stamps expanding to 64 bits. This, however, can
- break certain programs that depend on the time stamps being
- contiguous (in calls to _u_t_i_m_e_s(2)).
-
- SSEEEE AALLSSOO
- chmod(2), chown(2), utimes(2)
-
- BBUUGGSS
- Applying _f_s_t_a_t to a socket (and thus to a pipe) returns a
- zero'd buffer, except for the blocksize field, and a unique
- device and inode number.
-
-
-
-
-
- Sprite v1.0 October 25, 1987 3
-
-
-
-